Software applications have a variety of mechanisms for providing and enhancing user experience of an application. Some applications are configured to enable a user to alter borders, shading and other visual aspects of an application's display. Some applications are configured to enable a user to alter sounds, music, ringtones and other auditory features of the application, and so on. Still other applications may provide options for changing a tactile interface in which a user may receive output information or provide input information to a computer and computer application (e.g., a touchpad screen). Generally speaking, user interface customization can be as rich and diverse as the variety of ways in which information can be received from or output to a user of a computer application.
As applications become more complex, the number of functions and functionality of a computer application can increase significantly. Take, for instance, a word processing application. Such an application will likely have functionality to facilitate generation of letters, postcards, documents, presentations, banners, signs, and so on. The application may contain different sets of default parameters for each of these different types of documents. Such parameters might include dimensions of document boundaries, dimensions of borders and margins, visual artwork, preconfigured text fields, and so on. In addition, many of these parameters could be user customizable, in which case the application will include a control interface for receiving user parameter values (e.g., a control dialogue box for borders and margins, etc.). In general, different application functionality and features have associated user options or preference settings for user customization of parameters associated with the functionality and features. These user options and preference settings are also referred to as configuration functions.
Some methods employed for organizing configuration functions of a computer application include creating menus, ribbons, dialogue boxes, toolbars, and the like, that organize configuration functions into various categories. For example, a set of menus might include a file menu, editing menu and viewing menu, among others, in which configuration functions related to those categories can be accessed. Other applications can organize related configuration functions in toolbars, or in pop-up boxes, whereas some applications employ a combination of these or like mechanisms for organizing configuration functions. Thus, some applications may configure some configurations functions in multiple ways. For instance, functionality accessible on an editing menu may also be available on an editing toolbar, and so on.
Although menus, toolbars and dialogue boxes provide a sophisticated way to organize configuration functions in a computer application, the sheer number of such functions can still overwhelm users, particularly those users who are unfamiliar with an application, or are familiar with a prior version of the application having a different organization. One problem in software development, for instance, is providing new application functionality and solving user concerns in a manner that is appealing to a wide base of users, with an interface that is easy to navigate. One deterrent in moving to a new version of a computer application is fear of losing productivity from lack of familiarity with the user interface. A challenge for software development in providing computer applications is to include new functionality, fix inoperable or ineffective functionality, while providing a pleasing user experience, without impacting productivity of users.